/**
 * ReportGear(2011)
 */
package com.reportgear.core.data;

import java.util.List;
import java.util.Set;

import com.reportgear.core.data.model.SalaryDataObject;
import com.reportgear.report.setting.ApplicationContext;

/**
 * 电信薪酬帮助类
 * 
 * @version 1.0 2011-4-5
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public enum SalaryHelper {
    INSTANCE;

    private SalaryDataQueryDelegate delegate;

    SalaryHelper() {
        if (ApplicationContext.INSTANCE.isApplet()) {
            this.delegate = new SalaryDataQueryXmlByJs();
        } else {
            this.delegate = new SalaryDataQueryXmlByLocal();
        }
    }

    /**
     * 获取发放表内容
     * 
     * @param payId 发放表Id
     * @return 发放表内容
     */
    public String getPaymentData(int payId) {
        return this.delegate.getPaymentData(payId);
    }

    /**
     * 组织机构
     */
    public List<SalaryDataObject> getOrgs() {
        return this.delegate.getOrgs();
    }

    /**
     * 成本中心
     */
    public List<SalaryDataObject> getCenters() {
        return this.delegate.getCenters();
    }

    /**
     * 薪酬体系
     */
    public List<SalaryDataObject> getSalaryScheme() {
        return this.delegate.getSalaryScheme();
    }

    /**
     * 薪酬项目
     * 
     * @param schemeId 薪酬体系Id
     */
    public List<SalaryDataObject> getSalaryItem(int schemeId) {
        return this.delegate.getSalaryItem(schemeId);
    }

    /**
     * 读取指定模板
     * 
     * @param reportId 模板Id
     * @return 模板内容
     */
    public String loadTemplate(int reportId) {
        return this.delegate.loadTemplate(reportId);
    }

    /**
     * 模板列表读取服务
     * 
     * @return 模板列表
     */
    public List<SalaryDataObject> loadTemplateList() {
        return this.delegate.loadTemplateList();
    }

    /**
     * 模板存储
     * 
     * @param template 模型内容
     * @param id 模板Id
     * @param SystemId 薪酬体系Id
     * @param name 模板名称
     * @return 模板返回Id结果
     */
    public int saveTemplate(String template, int id, int SystemId, String name) {
        return this.delegate.saveTemplate(template, id, SystemId, name);
    }

    /**
     * 删除指定模板
     * 
     * @param id 模板Id
     * @return 删除结果
     */
    public boolean deleteTemplate(int id) {
        return this.delegate.deleteTemplate(id);
    }

    /**
     * 发放表基本信息，发放表描述
     */
    public SalaryDataObject getPayBase(int paymentId) {
        return this.delegate.getPayBase(paymentId);
    }

    /**
     * 根据Key值获取排序信息
     */
    public List<SalaryDataObject> getOrderInfo(String key) {
        return this.delegate.getOrderInfo(key);
    }

    /**
     * 保存排序信息
     * 
     * @param key 键值
     * @param content 内容
     */
    public int saveOrderInfo(String key, String content) {
        return this.delegate.saveOrderInfo(key, content);
    }

    /**
     * 获取最后发放表信息，用于设计时预览
     * 
     * @return 发放表信息
     */
    public List<SalaryDataObject> getLastPayments() {
        return this.delegate.getLastPayments();
    }

    /**
     * 获取Session变量对象
     * 
     * @return Session变量对象
     */
    public SalaryDataObject getSessionVar() {
        return this.delegate.getSessionVar();
    }

    /**
     * 读取指定模板
     * 
     * @param reportId 模板Id
     * @return 模板内容
     */
    public String loadResumeTemplate(int reportId) {
        return this.delegate.loadResumeTemplateModel(reportId);
    }

    /**
     * 模板列表读取服务
     * 
     * @return 模板列表
     */
    public List<SalaryDataObject> loadResumeTemplateList() {
        return this.delegate.loadResumeTemplateModelList();
    }

    /**
     * 模板列表读取服务
     * 
     * @return 模板列表
     */
    public List<SalaryDataObject> loadResumeTemplateList1() {
        return this.delegate.loadResumeTemplateModelList1();
    }

    /**
     * 模板存储
     * 
     * @param template 模型内容
     * @param id 模板Id
     * @param name 模板名称
     * @param isglobal 是否全局
     * @return 模板返回Id结果
     */
    public int saveResumeTemplate(String template, int id, String name, int isglobal) {
        return this.delegate.saveResumeTemplateModel(template, id, name, isglobal);
    }

    /**
     * 删除指定模板
     * 
     * @param id 模板Id
     * @return 删除结果
     */
    public boolean deleteResumeTemplate(int id) {
        return this.delegate.deleteResumeTemplateModel(id);
    }

    /**
     * 获取人员简历基本内容
     * 
     * @param id 主键Id
     * @return 人员简历基本内容
     */
    public SalaryDataObject getResumeBase(int id) {
        return this.delegate.getResumeBase(id);
    }

    /**
     * 获取人员简历Parts
     * 
     * @param id 员工Id
     * @param part 内容部分
     * @return 人员简历部分
     */
    public List<SalaryDataObject> getResumeParts(int id, String part) {
        return this.delegate.getResumeParts(id, part);
    }

    /**
     * 获取照片数据
     * 
     * @param photoId 照片Id
     * @return 照片信息
     */
    public String getPhotoData(String photoId) {
        return this.delegate.getPhotoData(photoId);
    }

    /**
     * @return 模板设计信息
     */
    public String loadResumeDesignInfo() {
        return this.delegate.loadResumeDesignInfo();
    }
}
